
    /**  
    * @Title: JuheApi.java
    * @Package com.third.juhe.api
    * @Description: 
    * @author likai
    * @date 2017年11月1日
    * @version V1.0  
    */
    
package com.third.utils.juheapi;

import java.util.Map;

import com.supers.enums.Charset;
import com.utils.http.HttpClientUtil;
import com.utils.md5.EncryptUtil;

/**
    * @ClassName: JuheApi
    * @Description: 聚合数据api 网站：https://www.juhe.cn				
    * @author likai
    * @date 2017年11月1日
    *
    */

public class JuheUtil {
	private static final String queryUrl="http://op.juhe.cn/ofpay/mobile/";
	private  String key;//	应用APPKEY(应用详细页查询)
	private  String openID;//OpenID在个人中心查询
	private static JuheUtil juheApi;
	private JuheUtil(JuheApiConfig config) {
		super();
		this.key = config.getKey();
		this.openID = config.getOpnenId();
	}
	
	public static JuheUtil init(JuheApiConfig config) {
		if (juheApi==null) {
			juheApi= new JuheUtil(config);
		}
		return juheApi;
	}
	
	

	/* 
	    * @Description:检测手机号码是否能充值
	    * 
	    * @return:
	    * 
	    * cardnum    是		手机号码
		* issueno    是		充值金额,目前可选：10、20、30、50、100、300
	    *
	    */
	@SuppressWarnings("unchecked")
	public int  telcheck(String phoneno,String cardnum) {
		String url=queryUrl+"telcheck?cardnum="+cardnum+"&phoneno="+phoneno+"&key="+key;
		try {
			Map<String, Object> response=(Map<String, Object>) HttpClientUtil.httpJson.getClient(url, Charset.UTF8, Map.class);
			int errorCode=(Integer) response.get("error_code");
			return errorCode;
		} catch (Exception e) {			
			e.printStackTrace();
			return -1;
		}
	}
	
	/* 
	    * @Description:根据手机号和面值查询商品
	    * 
	    * @return:
	    * 
	    * cardnum    是		手机号码
		* issueno    是		充值金额,目前可选：10、20、30、50、100、300
	    *
	    */
	@SuppressWarnings("unchecked")
	public Map<String, Object>   telquery(String phoneno,String cardnum) {
		String url=queryUrl+"telquery?cardnum="+cardnum+"&phoneno="+phoneno+"&key="+key;
		try {
			Map<String, Object> response=(Map<String, Object>) HttpClientUtil.httpJson.getClient(url, Charset.UTF8, Map.class);
			return response;
		} catch (Exception e) {			
			e.printStackTrace();
			return null;
		}
	}
	
	/* 
	    * @Description:根据手机号和面值查询商品
	    * 
	    * @return:
	    * 
	    * cardnum    是		手机号码
		* issueno    是		充值金额,目前可选：10、20、30、50、100、300
		* orderid    是		商家订单号，8-32位字母数字组合，由您自己生成
	    *
	    */
	@SuppressWarnings("unchecked")
	public Map<String, Object>  onlineorder(String phoneno,String cardnum,String orderid) {
		String sign=EncryptUtil.encodedByMD5(openID+key+phoneno+cardnum+orderid);
		String url=queryUrl+"onlineorder?cardnum="+cardnum+"&phoneno="+phoneno+"&orderid="+orderid+"&sign="+sign+"&key="+key;
		try {
			Map<String, Object> response=(Map<String, Object>) HttpClientUtil.httpJson.getClient(url, Charset.UTF8, Map.class);
			return response;
		} catch (Exception e) {			
			e.printStackTrace();
			return null;
		}
	}
	
	/* 
	    * @Description:根据手机号和面值查询商品
	    * 
	    * @return:
	    * 
		* orderid    是		商家订单号，8-32位字母数字组合，由您自己生成
	    *
	    */
	@SuppressWarnings("unchecked")
	public Map<String, Object>  ordersta(String orderid) {
		String url=queryUrl+"ordersta?&orderid="+orderid+"&key="+key;
		try {
			Map<String, Object> response=(Map<String, Object>) HttpClientUtil.httpJson.getClient(url, Charset.UTF8, Map.class);
			return response;
		} catch (Exception e) {			
			e.printStackTrace();
			return null;
		}
	}
}
